package com.food.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.food.pojo.*;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * @author beixiang
 * @version 1.0
 * @description TODO
 * @date 2023/6/25 19:26
 */
public interface CaloriesService{

    /**
    * @description 添加自定义卡路里美食
    * @param caloriesFoodUser
    * @return java.lang.Boolean
    * @author beixiang
    * @date 2023/6/30 19:30
    */
    Boolean insertCaloriesFoodUser(CaloriesFoodUser caloriesFoodUser);

    /**
    * @description 添加自定义卡路里美食
    * @param Id
    * @return java.lang.Boolean
    * @author beixiang
    * @date 2023/6/30 19:25
    */
    Boolean deleteCaloriesFoodUser(Integer Id);


    /**
    * @description 分页查询自定义美食卡路里
    * @param page
     * @param limit
    * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.food.pojo.CaloriesFoodUser>
    * @author beixiang
    * @date 2023/6/30 19:44
    */
    Page<CaloriesFoodUser> selectCaloriesFoodUser(Integer page, Integer limit);

    /**
    * @description 分页查询美食卡路里
    * @param page
     * @param limit
    * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.food.pojo.CaloriesFood>
    * @author beixiang
    * @date 2023/6/30 20:11
    */
    Page<CaloriesFood> selectCaloriesFood(Integer page, Integer limit);


    /***
    * @description 添加用户饮食记录
    * @param recordsDtos
    * @return java.lang.Boolean
    * @author beixiang
    * @date 2023/7/8 21:18
    */
    Boolean insertCaloriesRecordsUser(List<RecordsDto> recordsDtos);

    /**
     * 查询用户卡路里余量接口
     * @param userId
     * @return
     */
    CaloriesIngestibleUserDto getUserRemainingCalories(Integer userId);

    /**
     * 添加用户运动消耗记录接口
     * @param caloriesRecordsUser
     */
    void addUserReduceCalorie(CaloriesRecordsUser caloriesRecordsUser);

    /**
     * 查询用户每日饮食添加记录接口
     * @param userId
     */
    CaloriesRecordsUserDto getUserCaloriesToday(Integer userId);
}
